/************************************************************************
 * Author: Murat Bicer
 * File: cf_events.idl
 * Description: Event types used for sending/receiving events by CF components
 *				See SCA 2.2 specification page 3-14 for more details
 * Date: 07/06/04
 ************************************************************************/
#ifndef __CF_EVENTS_DEFINED
#define __CF_EVENTS_DEFINED

module StandardEvent{

enum StateChangeCategoryType
{
	ADMINISTRATIVE_STATE_EVENT,
	OPERATIONAL_STATE_EVENT,
	USAGE_STATE_EVENT
};

enum StateChangeType
{
	LOCKED,				/*Administrative State Event */
	UNLOCKED,			/*Administrative State Event */
	SHUTTING_DOWN,		/*Administrative State Event */
	ENABLED,			/*Operational State Event */
	DISABLED,			/*Operational State Event */
	IDLE,				/*Usage State Event */
	ACTIVE,				/*Usage State Event */
	BUSY				/*Usage State Event */
};

struct StateChangeEventType
{
	string						producerId;
	string						sourceId;
	StateChangeCategoryType		stateChangeCategory;
	StateChangeType				stateChangeFrom;
	StateChangeType				stateChangeTo;
};

enum SourceCategoryType
{
	DEVICE_MANAGER,
	DEVICE,
	APPLICATION_FACTORY,
	APPLICATION,
	SERVICE
};

struct DomainManagementObjectRemovedEventType 
{
	string				producerId;
	string				sourceId;
	string				sourceName;
	SourceCategoryType	sourceCategory;
};

struct DomainManagementObjectAddedEventType
{
	string				producerId;
	string				sourceId;
	string				sourceName;
	Object				sourceIOR;
	SourceCategoryType	sourceCategory;
};

}; //module StandardEvent 

#endif //__CF_EVENTS_DEFINED